package packageWA;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.ResultSet;
import java.sql.SQLException;

public class AnadirEmpleado extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField txtNombre;
	private JTextField txtApellidos;
	private JTextField txtCargo;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					//AnadirEmpleado frame = new AnadirEmpleado();
					//frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public AnadirEmpleado(final String cif) {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 410, 289);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblNombre = new JLabel("Nombre:");
		lblNombre.setBounds(65, 49, 61, 16);
		contentPane.add(lblNombre);
		
		JLabel lblApellidos = new JLabel("Apellidos:");
		lblApellidos.setBounds(65, 103, 78, 16);
		contentPane.add(lblApellidos);
		
		JLabel lblCargo = new JLabel("Cargo:");
		lblCargo.setBounds(65, 153, 61, 16);
		contentPane.add(lblCargo);
		
		txtNombre = new JTextField();
		txtNombre.setBounds(172, 43, 177, 28);
		contentPane.add(txtNombre);
		txtNombre.setColumns(10);
		
		txtApellidos = new JTextField();
		txtApellidos.setColumns(10);
		txtApellidos.setBounds(172, 97, 177, 28);
		contentPane.add(txtApellidos);
		
		txtCargo = new JTextField();
		txtCargo.setColumns(10);
		txtCargo.setBounds(172, 147, 177, 28);
		contentPane.add(txtCargo);
		
		JButton btnGuardar = new JButton("Guardar");
		btnGuardar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//Comprobar campos requeridos
				if(txtNombre.getText().isEmpty() || txtApellidos.getText().isEmpty() || txtCargo.getText().isEmpty()){
					JOptionPane.showMessageDialog(null,"Tiene que rellenar todos los campos");
				}
				else{
					//Comprobar si el empleado esta almacenado
					try {
						int idE;
						ResultSet rs = GestorBD.getInstance().consulta("SELECT idEmpleado FROM Empleado WHERE Nombre='" + txtNombre.getText() + "' AND Apellidos='" + txtApellidos.getText() + "' AND Cargo='" + txtCargo.getText() + "';");
						if(!rs.next()){
							//Anadimos empleado
							String sql = "INSERT INTO Empleado (cifEmpresa,Nombre, Apellidos, Cargo) VALUES ('"+cif+"','" + txtNombre.getText() + "', '" + txtApellidos.getText() + "', '" + txtCargo.getText() + "');";
							GestorBD.getInstance().insertar(sql);
							
							//Obtenemos su id
							ResultSet rs2 = GestorBD.getInstance().consulta("SELECT idEmpleado FROM Empleado WHERE Nombre='" + txtNombre.getText() + "' AND Apellidos='" + txtApellidos.getText() + "' AND Cargo='" + txtCargo.getText() + "';");
							rs2.next();
							idE = rs2.getInt("idEmpleado");
						}
						else{
							idE = rs.getInt("idEmpleado");
						}
						//Buscamos las respuestas que no tienen asignado un empleado
						ResultSet rs3 = GestorBD.getInstance().consulta("SELECT idRespuesta FROM Respuesta WHERE idEmpleado=9999;");
						while(rs3.next()){
							//Actualizar respuesta
							String sql = "UPDATE Respuesta SET idEmpleado=" + idE + " WHERE idRespuesta=" + rs3.getInt("idRespuesta") + ";";
							GestorBD.getInstance().actualizar(sql);
						}
						
						//Anadimos idEmpleado a encuestaempresa
						String sql2 = "UPDATE encuestaempresa SET idEmpleado=" + idE + " WHERE cifEmpresa='" + cif + "' AND idEmpleado=9999;";
						GestorBD.getInstance().actualizar(sql2);
						
					} catch (SQLException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
					JOptionPane.showMessageDialog(null,"Encuesta guardada");
					dispose();
				}
			}
		});
		btnGuardar.setBounds(145, 214, 117, 29);
		contentPane.add(btnGuardar);
	}

}
